package co.edu.eam.persitencia.entidades;

import co.edu.eam.persitencia.enumeraciones.SistemaEnum;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
 * Entidad que representa los detalles de los comentarios al sistema.
 *
 */
@NamedQueries({
    @NamedQuery(name=DetalleComentarioSistema.CONSULTA_LISTAR_DETALLECOMENTARIOSISTEMA,
     query=("SELECT detalle FROM DetalleComentarioSistema detalle WHERE detalle.historiaClinica.id=:"+DetalleComentarioSistema.PARAMETRO_ID_HISTORIA)),
})

@Entity
@Table(name = "clinica_DetalleComentarioSistema")
public class DetalleComentarioSistema implements Serializable {
    
    public static final String CONSULTA_LISTAR_DETALLECOMENTARIOSISTEMA="listarDetalleComentarioSistema";
    public static final String PARAMETRO_ID_HISTORIA= "id";

    /**
     * Identificador unico de la entidad.
     */
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name = "DetalleComentarioSistema_id")
    private Long id;
    /**
     * Sistema corporal del que se hace el comentario.
     */
    @Enumerated(EnumType.STRING)
    private SistemaEnum sistema;
    /**
     * comentario
     */
    @Column(name = "DetalleComentarioSistema_comentario")
    private String comentario;
    /**
     * Historia clinica asociada
     */
    @JoinColumn(name="historiaClinica")
    @ManyToOne
    private HistoriaClinica historiaClinica;

    /**
     * Constructor sin parametros.
     */
    public DetalleComentarioSistema() {
        
    }

    /**
     * @return the id
     */
    public Long getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * @return the sistema
     */
    public SistemaEnum getSistema() {
        return sistema;
    }

    /**
     * @param sistema the sistema to set
     */
    public void setSistema(SistemaEnum sistema) {
        this.sistema = sistema;
    }

    /**
     * @return the comentario
     */
    public String getComentario() {
        return comentario;
    }

    /**
     * @param comentario the comentario to set
     */
    public void setComentario(String comentario) {
        this.comentario = comentario;
    }

    /**
     * @return the historia
     */
    public HistoriaClinica getHistoria() {
        return historiaClinica;
    }

    /**
     * @param historia the historia to set
     */
    public void setHistoria(HistoriaClinica historia) {
        this.historiaClinica = historia;
    }
    //TODO:falta ToString
}
